package com.powernode.util;

import com.powernode.constants.RedisKey;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.data.redis.core.StringRedisTemplate;

import java.util.Date;

public class PayUtil {
    /*生成订单   防止 高并发时   生成多个相同的订单号
    * 规则：   时间戳 精确到 毫秒 +  UUID（不能保证数据是连续）
    *                           + 主键 （效率低）
    *                           +手机号
    *                           + 随机数
    *                           + redis 自增值    推荐
    *   */

    public static String generateKqOrderId(Date date, StringRedisTemplate stringRedisTemplate){
            String timestamp = DateFormatUtils.format(date,"yyyyMMddHHmmssSSS");
            String key  = RedisKey.RECHARGE_ORDERID_SEQ;
            /*返回自增值*/
        Long increment = stringRedisTemplate.boundValueOps(key).increment();
        return "KQ"+timestamp+increment;
    }
}
